Effective data change based rule to enable backup for specific VMware virtual machine

ABSTRACT

One embodiment is related to a method for backing up virtual machines, comprising: determining whether virtual machines comprised in a backup policy group are to be backed up based on a present time and a backup schedule associated with the backup policy group; in response to a determination that the virtual machines comprised in the backup policy group are to be backed up, determining a data change ratio since a previous backup for each virtual machine comprised in the backup policy group; and backing up each virtual machine comprised in the backup policy group that has a data change ratio since the previous backup that meets a data change threshold associated with the backup policy group.

FIELD OF THE INVENTION

Embodiments of the disclosure are related to electronic devices, andmore particularly, to a method, apparatus, and system for backing upvirtual machines in a virtual environment.

BACKGROUND

With a conventional approach to backing up virtual machines, and basedon a schedule specified in backup policies, a set of virtual machinesare backed up in a scheduled backup run irrespective of the amount ofdata change since the previous backup. This creates irregularincremental backup images where some of the backup points have littlenew data while other backup points have a significant amount of new datain the backup images.

The time schedule based conventional approach has several drawbacks. Forexample, periodic full backups are scheduled that are spaced by acertain number of incremental backups irrespective of the amount of datachange since the previous full backup. This may result in inefficientuse of backup storage space. Further, because incremental backups arescheduled at fixed intervals, an incremental backup can potentiallycontain a large amount of new data. If such an incremental backup imageis lost or corrupted, a significant data loss may result. In anotherscenario, if a reversion to a state before the incremental backup with alarge amount of new data was performed is desired, the reversionoperation may take a significant amount of time to complete due to thesize of the incremental backup.

Furthermore, backups based on a fixed schedule may cause performancedegradation. For example, when a large number of virtual machines arescheduled to be backed up in a same backup run, there may be not enoughsystem resources left for applications running at the time of the backuprun, and the application performance may suffer as a result.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention are illustrated by way of example and notlimitation in the figures of the accompanying drawings in which likereferences indicate similar elements.

FIG. 1 is a block diagram illustrating an example environment in whichembodiments of the disclosure may be practiced.

FIG. 2 is a flowchart illustrating an example method for backing upvirtual machines, according to one embodiment of the disclosure.

FIG. 3 is a flowchart illustrating an example method for backing upvirtual machines, according to another embodiment of the disclosure.

FIG. 4 is a block diagram illustrating an example of a data processingsystem which may be used with one embodiment of the disclosure.

DETAILED DESCRIPTION

Various embodiments and aspects of the inventions will be described withreference to details discussed below, and the accompanying drawings willillustrate the various embodiments. The following description anddrawings are illustrative of the invention and are not to be construedas limiting the invention. Numerous specific details are described toprovide a thorough understanding of various embodiments of the presentinvention. However, in certain instances, well-known or conventionaldetails are not described in order to provide a concise discussion ofembodiments of the present inventions.

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin conjunction with the embodiment can be included in at least oneembodiment of the invention. The appearances of the phrase “in oneembodiment” in various places in the specification do not necessarilyall refer to the same embodiment.

Embodiments of the disclosure are related to a method, apparatus, andsystem for backing up virtual machines. The operations may comprise:determining whether virtual machines comprised in a backup policy groupare to be backed up based on a present time and a backup scheduleassociated with the backup policy group; in response to a determinationthat the virtual machines comprised in the backup policy group are to bebacked up, determining a data change ratio since a previous backup foreach virtual machine comprised in the backup policy group; and backingup each virtual machine comprised in the backup policy group that has adata change ratio since the previous backup that meets a data changethreshold associated with the backup policy group.

Referring to FIG. 1, a block diagram illustrating an example environment100 in which embodiments of the disclosure may be practiced is shown. Ahardware host system 110 may host one or more virtual machines 120 withthe assistance of a hypervisor (e.g., VMware ESXi) 115. The hypervisor115 may be managed by a virtual environment management server (e.g.,VMware vCenter) 130.

The host system 110 may further host a virtual backup proxy node 150.The virtual backup proxy node 150 may, under the coordination of thevirtual environment management server 130 and a data protection server160, back up disk images of the virtual machines 120 to the storagedevice 140. The virtual backup proxy node 150 may also perform recoveryoperations by restoring the backed up disk images from the storagedevice 140 to the host system 110 for access by virtual machines 120. Itshould be appreciated that the hypervisor 115, virtual backup proxy node150, virtual environment management server 130, data protection server160, and the storage device 140 may have access to a common network 170(e.g., a public network), through which they may communicate with eachother. Therefore, under the coordination of the virtual environmentmanagement server 130 and the data protection server 160, the virtualbackup proxy node 150 may back up the disk images of the virtualmachines 120 by copying the disk images to the storage device 140through the network 170.

The virtual machines 120 may be assigned to one or more backup policygroups 180. Each policy group 180 may comprise one or more of thevirtual machines 120, and may be associated with a backup schedule,which may be periodical (e.g., once every hour at a particular time,once every day at a particular time, etc.). Each policy group 180 mayfurther comprise a data change threshold (e.g., 3%, 5%, etc.). Thus, thedisk images of the virtual machines 120 may be backed up based on thebackup schedule and/or the data change threshold contained in therespective backup policy groups 180.

Referring to FIG. 2, a flowchart illustrating an example method 200 forbacking up virtual machines, according to one embodiment of thedisclosure, is shown. At block 210, whether virtual machines comprisedin a backup policy group are to be backed up may be determined based ona present time and a backup schedule associated with the backup policygroup. At block 220, in response to a determination that the virtualmachines comprised in the backup policy group are to be backed up, adata change ratio since a previous backup may be determined for eachvirtual machine comprised in the backup policy group. At block 230, eachvirtual machine comprised in the backup policy group that has a datachange ratio since the previous backup that meets a data changethreshold associated with the backup policy group may be backed up(e.g., the disk image of the virtual machine is copied to a backupstorage device). The backup may be an incremental backup (i.e., only newor altered data are included in the backup). Virtual machines that havedata change ratios that do not meet the data change threshold may beskipped in the present scheduled backup run.

For example, if a backup policy group is associated with a data changethreshold of 3% and comprises three virtual machines that have datachange ratios of 10%, 1%, and 0%, respectively, at the time of ascheduled backup run, only the virtual machine that has a data changeratio of 10% (which is greater than the data change threshold of 3%) isbacked up in the present backup run. The other two virtual machines areskipped in this backup run. It should be noted that the virtual machinewith the data change ratio of 0% may have been powered off since theprevious backup, and no backup is required for this virtual machine atthis time.

In one embodiment, a data change ratio meets the data change thresholdwhen the data change ratio is equal to or greater than the data changethreshold. In another embodiment, a data change ratio meets the datachange threshold only when the data change ratio is greater than thedata change threshold.

In another embodiment, in addition to a backup schedule and a datachange threshold, a backup policy group may be further associated withan automatic initiation (“auto_initiation”) flag. When the flag is set,under the coordination of the virtual environment management server 130,a (lightweight) agent may be installed on each virtual machine comprisedin the backup policy group to determine the data change ratio at thevirtual machine, either in real time or periodically with shortintervals. When the data change ratio at the virtual machine reaches thedata change threshold associated with the backup policy group, a backupof the virtual machine may be triggered immediately, even if the time ofthe next scheduled backup run has not arrived. Thus, when the time forthe scheduled backup run arrives, no or very few virtual machines in thebackup policy group need to be backed up because most likely the datachange ratios since the previous backup for the virtual machinescomprised in the backup policy group do not meet the data changethreshold. In other words, virtual machines comprised in the backuppolicy group are almost always protected through backups when the datachange ratio reaches the data change threshold, and the incrementalbackups mostly correspond to the same data change ratio, which is thedata change threshold associated with the backup policy group.

Referring to FIG. 3, a flowchart illustrating an example method 300 forbacking up virtual machines, according to another embodiment of thedisclosure, is shown. At block 310, a data change ratio since a previousbackup may be determined for each virtual machine comprised in a backuppolicy group in real time. At block 320, whether the data change ratiofor any virtual machine meets the data change threshold associated withthe backup policy group may be determined in real time. At block 330, inresponse to determining that the data change ratio for a first virtualmachine meets the data change threshold, a backup of the first virtualmachine may be initiated immediately irrespective of a backup scheduleassociated with the backup policy group. The backup may be anincremental backup.

In yet another embodiment, a backup policy group may further beassociated with a full backup flag and a full backup threshold. When theflag is set, a full backup (i.e., a backup of all data including bothunchanged data and new or altered data) may be performed after thenumber of consecutive already-performed incremental backups meets thefull backup threshold. For example, if the full backup threshold is 5, afull backup will be performed at the next backup run after 5 consecutiveincremental backups.

Methods 200 and 300 may be performed by processing logic that includeshardware (e.g. circuitry, dedicated logic, etc.), software (e.g.,embodied on a non-transitory computer readable medium), or a combinationthereof. For example, methods 200 and 300 may be performed by processors1501 of FIG. 4. Note that some or all of the components as shown anddescribed above may be implemented in software, hardware, or acombination thereof. For example, such components can be implemented assoftware installed and stored in a persistent storage device, which canbe loaded and executed in a memory by a processor (not shown) to carryout the processes or operations described throughout this application.Alternatively, such components can be implemented as executable codeprogrammed or embedded into dedicated hardware such as an integratedcircuit (e.g., an application specific IC or ASIC), a digital signalprocessor (DSP), or a field programmable gate array (FPGA), which can beaccessed via a corresponding driver and/or operating system from anapplication. Furthermore, such components can be implemented as specifichardware logic in a processor or processor core as part of aninstruction set accessible by a software component via one or morespecific instructions.

Therefore, embodiments of the disclosure are related to coordinating thebackup of virtual machines based on data change ratios since a previousbackup and a data change threshold associated with the backup policygroup. Accordingly, customers can be certain that the backup environmentis performing backups that comprise suitable amounts of new data. Bothunnecessary backups and backups that contain too much new data at oncecan be avoided. By eliminating unnecessary backups, as well asstaggering the backups within the same backup policy group in someembodiments, system resources usage can be reduced; consequently, moresystem resources may become available for other parallel operations,such as the execution of production applications. Furthermore, themetadata size and index size may also be reduced.

FIG. 4 is a block diagram illustrating an example of a data processingsystem 1500 which may be used with one embodiment of the disclosure. Forexample, system 1500 may represent any of data processing systemsdescribed above performing any of the processes or methods describedabove. System 1500 can include many different components. Thesecomponents can be implemented as integrated circuits (ICs), portionsthereof, discrete electronic devices, or other modules adapted to acircuit board such as a motherboard or add-in card of the computersystem, or as components otherwise incorporated within a chassis of thecomputer system. Note also that system 1500 is intended to show a highlevel view of many components of the computer system. However, it is tobe understood that additional components may be present in certainimplementations and furthermore, different arrangement of the componentsshown may occur in other implementations. System 1500 may represent adesktop, a laptop, a tablet, a server, a mobile phone, a media player, apersonal digital assistant (PDA), a personal communicator, a gamingdevice, a network router or hub, a wireless access point (AP) orrepeater, a set-top box, or a combination thereof. Further, while only asingle machine or system is illustrated, the term “machine” or “system”shall also be taken to include any collection of machines or systemsthat individually or jointly execute a set (or multiple sets) ofinstructions to perform any one or more of the methodologies discussedherein.

In one embodiment, system 1500 includes processor 1501, memory 1503, anddevices 1505-1508 via a bus or an interconnect 1510. Processor 1501 mayrepresent a single processor or multiple processors with a singleprocessor core or multiple processor cores included therein. Processor1501 may represent one or more general-purpose processors such as amicroprocessor, a central processing unit (CPU), or the like. Moreparticularly, processor 1501 may be a complex instruction set computing(CISC) microprocessor, reduced instruction set computing (RISC)microprocessor, very long instruction word (VLIW) microprocessor, orprocessor implementing other instruction sets, or processorsimplementing a combination of instruction sets. Processor 1501 may alsobe one or more special-purpose processors such as an applicationspecific integrated circuit (ASIC), a cellular or baseband processor, afield programmable gate array (FPGA), a digital signal processor (DSP),a network processor, a graphics processor, a network processor, acommunications processor, a cryptographic processor, a co-processor, anembedded processor, or any other type of logic capable of processinginstructions.

Processor 1501, which may be a low power multi-core processor socketsuch as an ultra-low voltage processor, may act as a main processingunit and central hub for communication with the various components ofthe system. Such processor can be implemented as a system on chip (SoC).Processor 1501 is configured to execute instructions for performing theoperations and steps discussed herein. System 1500 may further include agraphics interface that communicates with optional graphics subsystem1504, which may include a display controller, a graphics processor,and/or a display device.

Processor 1501 may communicate with memory 1503, which in one embodimentcan be implemented via multiple memory devices to provide for a givenamount of system memory. Memory 1503 may include one or more volatilestorage (or memory) devices such as random access memory (RAM), dynamicRAM (DRAM), synchronous DRAM (SDRAM), static RAM (SRAM), or other typesof storage devices. Memory 1503 may store information includingsequences of instructions that are executed by processor 1501, or anyother device. For example, executable code and/or data of a variety ofoperating systems, device drivers, firmware (e.g., input output basicsystem or BIOS), and/or applications can be loaded in memory 1503 andexecuted by processor 1501. An operating system can be any kind ofoperating systems, such as, for example, Windows® operating system fromMicrosoft®, Mac OS®/iOS® from Apple, Android® from Google®, Linux®,Unix®, or other real-time or embedded operating systems such as VxWorks.

System 1500 may further include 10 devices such as devices 1505-1508,including network interface device(s) 1505, optional input device(s)1506, and other optional 10 device(s) 1507. Network interface device1505 may include a wireless transceiver and/or a network interface card(NIC). The wireless transceiver may be a WiFi transceiver, an infraredtransceiver, a Bluetooth transceiver, a WiMax transceiver, a wirelesscellular telephony transceiver, a satellite transceiver (e.g., a globalpositioning system (GPS) transceiver), or other radio frequency (RF)transceivers, or a combination thereof. The NIC may be an Ethernet card.

Input device(s) 1506 may include a mouse, a touch pad, a touch sensitivescreen (which may be integrated with display device 1504), a pointerdevice such as a stylus, and/or a keyboard (e.g., physical keyboard or avirtual keyboard displayed as part of a touch sensitive screen). Forexample, input device 1506 may include a touch screen controller coupledto a touch screen. The touch screen and touch screen controller can, forexample, detect contact and movement or break thereof using any of aplurality of touch sensitivity technologies, including but not limitedto capacitive, resistive, infrared, and surface acoustic wavetechnologies, as well as other proximity sensor arrays or other elementsfor determining one or more points of contact with the touch screen.

IO devices 1507 may include an audio device. An audio device may includea speaker and/or a microphone to facilitate voice-enabled functions,such as voice recognition, voice replication, digital recording, and/ortelephony functions. Other 10 devices 1507 may further include universalserial bus (USB) port(s), parallel port(s), serial port(s), a printer, anetwork interface, a bus bridge (e.g., a PCI-PCI bridge), sensor(s)(e.g., a motion sensor such as an accelerometer, gyroscope, amagnetometer, a light sensor, compass, a proximity sensor, etc.), or acombination thereof. Devices 1507 may further include an imagingprocessing subsystem (e.g., a camera), which may include an opticalsensor, such as a charged coupled device (CCD) or a complementarymetal-oxide semiconductor (CMOS) optical sensor, utilized to facilitatecamera functions, such as recording photographs and video clips. Certainsensors may be coupled to interconnect 1510 via a sensor hub (notshown), while other devices such as a keyboard or thermal sensor may becontrolled by an embedded controller (not shown), dependent upon thespecific configuration or design of system 1500.

To provide for persistent storage of information such as data,applications, one or more operating systems and so forth, a mass storage(not shown) may also couple to processor 1501. In various embodiments,to enable a thinner and lighter system design as well as to improvesystem responsiveness, this mass storage may be implemented via a solidstate device (SSD). However in other embodiments, the mass storage mayprimarily be implemented using a hard disk drive (HDD) with a smalleramount of SSD storage to act as a SSD cache to enable non-volatilestorage of context state and other such information during power downevents so that a fast power up can occur on re-initiation of systemactivities. Also a flash device may be coupled to processor 1501, e.g.,via a serial peripheral interface (SPI). This flash device may providefor non-volatile storage of system software, including a basicinput/output software (BIOS) as well as other firmware of the system.

Storage device 1508 may include computer-accessible storage medium 1509(also known as a machine-readable storage medium or a computer-readablemedium) on which is stored one or more sets of instructions or software(e.g., module, unit, and/or logic 1528) embodying any one or more of themethodologies or functions described herein. Module/unit/logic 1528 mayalso reside, completely or at least partially, within memory 1503 and/orwithin processor 1501 during execution thereof by data processing system1500, memory 1503 and processor 1501 also constitutingmachine-accessible storage media. Module/unit/logic 1528 may further betransmitted or received over a network via network interface device1505.

Computer-readable storage medium 1509 may also be used to store the somesoftware functionalities described above persistently. Whilecomputer-readable storage medium 1509 is shown in an exemplaryembodiment to be a single medium, the term “computer-readable storagemedium” should be taken to include a single medium or multiple media(e.g., a centralized or distributed database, and/or associated cachesand servers) that store the one or more sets of instructions. The terms“computer-readable storage medium” shall also be taken to include anymedium that is capable of storing or encoding a set of instructions forexecution by the machine and that cause the machine to perform any oneor more of the methodologies of the present invention. The term“computer-readable storage medium” shall accordingly be taken toinclude, but not be limited to, solid-state memories, and optical andmagnetic media, or any other non-transitory machine-readable medium.

Module/unit/logic 1528, components and other features described hereincan be implemented as discrete hardware components or integrated in thefunctionality of hardware components such as ASICS, FPGAs, DSPs orsimilar devices. In addition, module/unit/logic 1528 can be implementedas firmware or functional circuitry within hardware devices. Further,module/unit/logic 1528 can be implemented in any combination hardwaredevices and software components.

Note that while system 1500 is illustrated with various components of adata processing system, it is not intended to represent any particulararchitecture or manner of interconnecting the components; as suchdetails are not germane to embodiments of the present invention. It willalso be appreciated that network computers, handheld computers, mobilephones, servers, and/or other data processing systems which have fewercomponents or perhaps more components may also be used with embodimentsof the invention.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the above discussion, itis appreciated that throughout the description, discussions utilizingterms such as those set forth in the claims below, refer to the actionand processes of a computer system, or similar electronic computingdevice, that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

Embodiments of the invention also relate to an apparatus for performingthe operations herein. Such a computer program is stored in anon-transitory computer readable medium. A machine-readable mediumincludes any mechanism for storing information in a form readable by amachine (e.g., a computer). For example, a machine-readable (e.g.,computer-readable) medium includes a machine (e.g., a computer) readablestorage medium (e.g., read only memory (“ROM”), random access memory(“RAM”), magnetic disk storage media, optical storage media, flashmemory devices).

The processes or methods depicted in the preceding figures may beperformed by processing logic that comprises hardware (e.g. circuitry,dedicated logic, etc.), software (e.g., embodied on a non-transitorycomputer readable medium), or a combination of both. Although theprocesses or methods are described above in terms of some sequentialoperations, it should be appreciated that some of the operationsdescribed may be performed in a different order. Moreover, someoperations may be performed in parallel rather than sequentially.

Embodiments of the present invention are not described with reference toany particular programming language. It will be appreciated that avariety of programming languages may be used to implement the teachingsof embodiments of the invention as described herein.

In the foregoing specification, embodiments of the invention have beendescribed with reference to specific exemplary embodiments thereof. Itwill be evident that various modifications may be made thereto withoutdeparting from the broader spirit and scope of the invention as setforth in the following claims. The specification and drawings are,accordingly, to be regarded in an illustrative sense rather than arestrictive sense.

What is claimed is:
 1. A method for backing up virtual machines,comprising: determining whether virtual machines comprised in a backuppolicy group are to be backed up based on a present time and a backupschedule associated with the backup policy group; in response to adetermination that the virtual machines comprised in the backup policygroup are to be backed up, determining a data change ratio since aprevious backup for each virtual machine comprised in the backup policygroup; backing up each virtual machine comprised in the backup policygroup that has a data change ratio since the previous backup that meetsa data change threshold associated with the backup policy group;skipping backup of virtual machines comprised in the backup policy groupthat have data change ratios that do not meet the data change threshold;determining whether an automatic initiation flag associated with thebackup policy group is set; and in response to determining that theautomatic initiation flag associated with the backup policy group isset; a) determining the data change ratio since the previous backup foreach virtual machine comprised in the backup policy group in real time;b) determining whether the data change ratio for any virtual machinecomprised in the backup policy group meets the data change thresholdassociated with the backup policy group in real time; and c) in responseto determining that the data change ratio for a first virtual machinecomprised in the backup policy group meets the data change threshold,initiating a backup of the first virtual machine immediatelyirrespective of the backup schedule associated with the backup policygroup.
 2. The method of claim 1, wherein the data change ratio since theprevious backup is determined in real time with an agent installed oneach virtual machine comprised in the backup policy group.
 3. The methodof claim 1, wherein backing up the first virtual machine comprisesperforming an incremental backup.
 4. The method of claim 1, wherein afull backup is performed for the first virtual machine after apredetermined number of consecutive incremental backups have beenperformed for the first virtual machine.
 5. The method of claim 1,wherein backing up of the first virtual machine is performed through avirtual backup proxy node and is coordinated by a virtual environmentmanagement server and a data protection server.
 6. A non-transitorymachine-readable medium having instructions stored therein which, whenexecuted by a processor, cause the processor to perform backupoperations, the operations comprising: determining, whether virtualmachines comprised in a backup policy group are to be backed up based ona present time and a backup schedule associated with the backup policygroup; in response to a determination that the virtual machinescomprised in the backup policy group are to be backed up, determining adata change ratio since a previous backup for each virtual machinecomprised in the backup policy group; backing up each virtual machinecomprised in the backup policy group that has a data change ratio sincethe previous backup that meets a data change threshold associated withthe backup policy group; skipping backup of virtual machines comprisedin the backup policy group that have data change ratios that do not meetthe data change threshold; determining whether an automatic initiationflag associated with the backup policy group is set; and in response todetermining that the automatic initiation flag associated with thebackup policy group is set; a) determining the data change ratio sincethe previous backup for each virtual machine comprised in the backuppolicy group in real time; b) determining whether the data change ratiofor any virtual machine comprised in the backup policy group meets thedata change threshold associated with the backup policy group in realtime; and c) in response to determining that the data change ratio for afirst virtual machine comprised in the backup policy group meets thedata change threshold, initiating a backup of the first virtual machineimmediately irrespective of the backup schedule associated with thebackup policy group.
 7. The non-transitory machine-readable medium ofclaim 6, wherein the data change ratio since the previous backup isdetermined in real time with an agent installed on each virtual machinecomprised in the backup policy group.
 8. The non-transitorymachine-readable medium of claim 6, wherein backing up the first virtualmachine comprises performing an incremental backup.
 9. Thenon-transitory machine-readable medium of claim 6, wherein a full backupis performed for the first virtual machine after a predetermined numberof consecutive incremental backups have been performed for the firstvirtual machine.
 10. The non-transitory machine-readable medium of claim6, wherein backing up of the first virtual machine is performed througha virtual backup proxy node and is coordinated by a virtual environmentmanagement server and a data protection server.
 11. A data processingsystem, comprising: a processor; and a memory coupled to the processorstoring instructions which, when executed by the processor, cause theprocessor to perform backup operations, the operations including:determining whether virtual machines comprised in a backup policy groupare to be backed up based on a present time and a backup scheduleassociated with the backup policy group; in response to a determinationthat the virtual machines comprised in the backup policy group are to bebacked up, determining a data change ratio since a previous backup foreach virtual machine comprised in the backup policy group; backing upeach virtual machine comprised in the backup policy group that has adata change ratio since the previous backup that meets a data changethreshold associated with the backup policy group; skipping backup ofvirtual machines comprised in the backup policy group that have datachange ratios that do not meet the data change threshold; determiningwhether an automatic initiation flag associated with the backup policygroup is set; and in response to determining that the automaticinitiation flag associated with the backup policy group is set; a)determining the data change ratio since the previous backup for eachvirtual machine comprised in the backup policy group in real time; b)determining whether the data change ratio for any virtual machinecomprised in the backup policy group meets the data change thresholdassociated with the backup policy group in real time; and c) in responseto determining that the data change ratio for a first virtual machinecomprised in the backup policy group meets the data change threshold,initiating a backup of the first virtual machine immediatelyirrespective of the backup schedule associated with the backup policygroup.
 12. The data processing system of claim 11, wherein the datachange ratio since the previous backup is determined in real time withan agent installed on each virtual machine comprised in the backuppolicy group.
 13. The data processing system of claim 11, whereinbacking up the first virtual machine comprises performing an incrementalbackup.
 14. The data processing system of claim 11, wherein a fullbackup is performed for the first virtual machine after a predeterminednumber of consecutive incremental backups have been performed for thefirst virtual machine.
 15. The data processing system of claim 11,wherein backing up of the first virtual machine is performed through avirtual backup proxy node and is coordinated by a virtual environmentmanagement server and a data protection server.